// Loesung_von_Aufgabe_2.3.4_3_abstossen

float x1; // Ortskoordinate des gelben Körpers zur Zeit t
float x01 = 150.0; // Ortskoordinate des gelben Körpers zur Zeit t = 0
float x2; // Ortskoordinate des roten Körpers zur Zeit t
float x02 = 200.0; // Ortskoordinate des roten Körpers zur Zeit t = 0
float deltaX; // Abstand zwischen den beiden Körpern
float v1 = -20.0; // Geschwindigkeit des gelben Körpers
float v2 = 60.0; // Geschwindigkeit des roten Körpers
float m1 = 6.0; // Masse des gelben Körpers
float m2 = 2.0; // Masse des roten Körpers
float t; // Zeit

void setup() 
{
  size(600, 200); // Fenstergröße
}

void draw() 
{
  background(255); // Hintergrundfarbe
  frameRate(1000); // Bildwiederholungsrate
  t = t + 1/frameRate;

  fill(0, 0, 255); // Schriftfarbe
  textSize(28); // Schriftgröße
  textAlign(CENTER); // Die Mitte des Textes wird auf den x-Wert 150 gesetzt
  text("t in s = " +round(t), 300, 50); 

  if (t <= 3.0)
  {
    fill(255, 255, 0); // gelber Körper
    rect(x01, 200 - m1*20, 50, m1*20);

    fill(255, 0, 0);// roter Körper
    rect(x02, 200 - m2*20, 50, m2*20);
  }

  if (t >= 3.0)
  {
    x1 = x01 + v1 * (t-3); // Ortskoordinate des gelben Körpers zur Zeit t >= 3
    x2 = x02 + v2 * (t-3); // Ortskoordinate des roten Körpers zur Zeit t >= 3

    fill(255, 255, 0); // gelber Körper
    rect(x1, 200 - m1*20, 50, m1*20);

    fill(255, 0, 0);// roter Körper
    rect(x2, 200 - m2*20, 50, m2*20);
  }

  deltaX = x2 - x1 - 50;

  if (t >= 7.0)
  {
    fill(0); // Schriftfarbe
    textSize(28); // Schriftgröße
    textAlign(CENTER); // Die Mitte des Textes wird auf den x-Wert 280 gesetzt
    text("deltaX in cm = " +round(deltaX), 280, 160);
    line(x1+50, 180, x2, 180);
    triangle(x1+50, 180, x1+70, 175, x1+70, 185);
    triangle(x2-20, 175, x2, 180, x2-20, 185);
    noLoop();
  }
}